package com.zysd.collection.scheduler.system.enums;

import java.util.concurrent.TimeUnit;

/**
 * 重试单位
 *
 * @author liuht
 * @date 2017/10/20 10:57
 */
public enum RetryUnit {
    /**
     * 毫秒
     */
    milliseconds("00", TimeUnit.MILLISECONDS),
    /**
     * 秒
     */
    seconds("01", TimeUnit.SECONDS),
    /**
     * 分钟
     */
    minutes("02", TimeUnit.MINUTES),
    /**
     * 小时
     */
    hours("03", TimeUnit.HOURS),
    /**
     * 天
     */
    days("04", TimeUnit.DAYS);


    private String code;

    private TimeUnit timeUnit;

    RetryUnit(String i, TimeUnit timeUnit) {
        this.code = i;
        this.timeUnit = timeUnit;
    }

    /**
     * 根据code 返回实例
     * @param code 指定code
     * @return TaskType
     */
    public static RetryUnit forCode(String code) {
        RetryUnit[] values = RetryUnit.values();
        for (RetryUnit value : values) {
            if (value.getCode().equals(code)) {
                return value;
            }
        }
        return null;
    }

    public String getCode() {
        return code;
    }

    public void setCode(String code) {
        this.code = code;
    }

    public TimeUnit getTimeUnit() {
        return timeUnit;
    }

    public void setTimeUnit(TimeUnit timeUnit) {
        this.timeUnit = timeUnit;
    }
}
